package com.daqsoft.dao.project;

import com.daqsoft.data.project.Node;
import com.daqsoft.data.project.Project;
import com.daqsoft.data.project.Task;
import com.daqsoft.dto.StatusEnum;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.Query;
import org.springframework.stereotype.Repository;

import java.util.List;

/**
 * @author 周麟东 on 18:19
 */
@Repository
public interface NodeDao extends JpaRepository<Node,Integer> {

    List<Node> findNodesByProjectOrderByIndex(Project project);

    List<Node> findNodeByStatusOrderByIndex(StatusEnum wait);

    /**
     * 通过项目和节点顺序查找节点
     * @param project 项目对象
     * @param index 顺序id
     * @return 查找出的第一个节点
     */
    Node findFirstByProjectAndIndex(Project project , int index);

    /**
     * 查找项目中最大的那个index值
     * @param project 项目对象
     * @return 返回最大值
     */
    @Query(value = "SELECT max(t.index) from Node t where t.project = ?1")
    Integer findMaxIndexByPrject(Project project);

    /**
     * 找到比当前顺序还大的节点对象
     * @param index 顺序
     * @param project 项目
     * @return 节点集合
     */
    List<Node> findByIndexGreaterThanAndProject(int index , Project project);
}
